import { handleAuthGetUserInfo, handleGetUserPhomeNumber } from '../../utils/wx'
import { requestPayment } from '../../utils/wx'
import http from '../../utils/http'


Page({

	/**
	 * 页面的初始数据
	 */
	data: {

	},

	/**
	 * 生命周期函数--监听页面加载
	 */
	onLoad: function (options) {
	},

	/**
	 * 生命周期函数--监听页面显示
	 */
	onShow: function () {

	},

    /**
     * 授权登录获取用户信息
     * @param {*} e 
     */
    async getUserInfo(e) {
        const userInfo = await handleAuthGetUserInfo(e);
        console.log(userInfo);
    },

    /**
     * 授权获取用户手机号
     * @param {*} e 
     */
    async getPhoneNumber(e) {
        const phoneNumber = await handleGetUserPhomeNumber(e);
        console.log(phoneNumber);
    },

    /**
     * 下单，发起微信支付
     */
     async handleOrderPay() {
        const user = getApp().globalData.userInfo
        const APPID = getApp().globalData.APPID

        // 准备订单请求体参数
        let goods = [{
            spuId: 17,
            spuName: '华为 HUAWEI P40 麒麟990 SoC芯片 5000万超感知徕卡三摄 30倍数字变焦 8GB+128GB深海蓝全网通4G手机',
            spuPic: 'https://quan-cloud-test.oss-cn-shenzhen.aliyuncs.com/2021-03-03/1dbbeacf-b9e2-48ae-8253-a92c026d0e91_b44cb3818522310d.jpg',
            skuId: 313,
            skuName: '华为 HUAWEI P40 麒麟990 SoC芯片 5000万超感知徕卡三摄 30倍数字变焦 8GB+128GB深海蓝全网通4G手机',
            skuPic: 'https://quan-cloud-test.oss-cn-shenzhen.aliyuncs.com/2021-03-01/f11f20da-63d8-4762-85d8-d65aa8c43718_5b5e74d0978360a1.jpg',
            skuPrice: 100,
            skuNum: 1,
            skuAttrsVals: '8GB+128GB'
        }]
        let orderParams = {
            appId: APPID,
            openId: user.openid,
            memberId: user.id,
            memberUsername: user.nickname,
            memberPhone: null,
            totalAmount: 100,// 订单总额
            payAmount: 100,// 应付金额（实际支付金额）
            orderType: 0, // 订单类型
            sourceType: 1, // 订单总额
            skus: goods, // 商品
        }

        // 发送请求 创建订单 获取订单编号
        const res = await http.post('/api/mall/omsorder/submitOrder', orderParams).catch(function(err) {
            console.log(err);
        })

        console.log(res);

        if (res.status) {
            // 订单编号
            const orderSn = res.data.orderSn
            if (orderSn) {
                // 微信订单预支付请求体参数
                const orderPayParams = {
                    appid: APPID,
                    openid: user.openid,
                    outTradeNo: orderSn,
                    body: '商品支付',
                    totalFee: res.data.payAmount * 100
                }

                // 发起 预支付接口
                http.post(`/api/wx/order/pay/${APPID}/now`, orderPayParams).then(res => {
                    if (res.status) {
                        
                        // 发起 微信支付
                        requestPayment(res.data).then(res => {
                            const { errMsg } = res
                            if (errMsg === 'requestPayment:ok') {
                                console.log(res);
                                // 跳转到支付成功页面
                                // wx.navigateTo({
                                //     url: '/pages/pay_success/pay_success'
                                // });
                            } else {
                                console.log('订单支付失败[' + errMsg + ']');
                            }
                        }).catch(function(err) {
                            console.log('调起微信支付失败：', err);

                            if (err.errMsg === 'requestPayment:fail cancel') {
                                console.log('用户取消支付');
                            }
                            if (err.errMsg === 'requestPayment:fail no permission') {
                                console.log('title: 未开通支付权限[' + err.errMsg + ']');
                            }
                        })

                    } else {
                        console.log('发起微信支付', res.msg);
                    }
                })
            }
        } else {
            console.log(res.msg);
        }
    },

    

	/**
	 * 页面相关事件处理函数--监听用户下拉动作
	 */
	onPullDownRefresh: function () {

	},

	/**
	 * 页面上拉触底事件的处理函数
	 */
	onReachBottom: function () {

	},

	/**
	 * 用户点击右上角分享
	 */
	onShareAppMessage: function () {

	}
})